open Big_int;;  (* Linked from sums.cmxa. *)

let rec factorial n =
    if le_big_int n unit_big_int then
        unit_big_int  (* = 1. *)
    else
        mult_big_int n  (factorial (sub_big_int n unit_big_int))
;;

print_endline (string_of_big_int (factorial (big_int_of_string Sys.argv.(1))))
